home *** CD-ROM | disk | FTP | other *** search
/ Deutsche Edition 1 / Deutsche Edition 1.iso / amok / amok_lha / amok26.lha / FileIO / FileIO.def next >
Text File  |  1993-08-15  |  2KB  |  59 lines

  1. (*---------------------------------------------------------------------------
  2.     :Program.     FileIO.def
  3.     :Contents.      komplette Files lesen und schreiben
  4.     :Author.      Bernd Preusing
  5.     :Address.      Gerhardstr. 16  D-2200 Elmshorn
  6.     :Phone.      04121/22486
  7.     :Copyright.      Public Domain
  8.     :Language.      Modula-2
  9.     :Translator.  M2Amiga V3.27d
  10.     :History.      1.0 14-Sep-89 Bernd Preusing
  11.     :History.      1.1 23-Sep-89 Bernd Preusing: neue PROCEDURE FreeFile
  12.     :Bugs.      none
  13.     :Remark.      Dieses Modul war überfällig!
  14. ---------------------------------------------------------------------------*)
  15. DEFINITION MODULE FileIO;
  16.  
  17. FROM SYSTEM    IMPORT    ADDRESS;
  18.  
  19. TYPE
  20.   FileIOResult= (noError, notFound, readError, writeError, saveError,
  21.            noMem, renameError, seekError);
  22.  
  23.  
  24. PROCEDURE FileExists(VAR Name: ARRAY OF CHAR):BOOLEAN;
  25. (* :Input.    Name: der komplette Filename mit Pfad (VAR für Speed)
  26.    :Output.    TRUE: Die Datei existiert und ist ein File, keine Directory
  27. *)
  28.  
  29. PROCEDURE GetFile(VAR Name:ARRAY OF CHAR; VAR Addr:ADDRESS;
  30.           VAR Len:LONGINT; Add:LONGINT):FileIOResult;
  31. (* :Input.    Name: Name des Files
  32.    :Input.    Addr: hier wird die Adresse des Filepuffers abgelegt
  33.    :Input.    Len:  erhält die genaue Länge des Files
  34.    :Input.    Add:  wird zur Länge des Files addiert, um den Puffer zu
  35.    :Input.        allozieren, falls man im Puffer mehr Platz braucht.
  36.    :Output.    noError, falls alles ok, sonst zugehöriger Fehler
  37.    :Semantic.    Alloziert Speicher Filelänge+1+Add, liest das File komplett
  38.    :Semantic.    ein und hängt ans Ende ein 0C an (für Texte ganz nützlich)
  39. *)
  40.  
  41. PROCEDURE FreeFile(VAR Buffer:ADDRESS);
  42. (* :Input.    Buffer: die mittels GetFile erhaltene Adresse
  43.    :Semantic.   Gibt den Speicher des FilePuffers wieder frei
  44. *)
  45.  
  46. PROCEDURE PutFile(VAR Name:ARRAY OF CHAR; Buffer:ADDRESS;
  47.           Len:LONGINT; Backup, DeallocMem: BOOLEAN):FileIOResult;
  48. (* :Input.    Name: Name des Files
  49.    :Input.    Addr: Adresse des Filepuffers
  50.    :Input.    Len:  Länge des abzuspeichernden Files
  51.    :Input.    Backup: falls TRUE, wird das alte File in Name.bak umbenannt
  52.    :Input.    DeallocMem: falls TRUE, wird der Puffer dealloziert
  53.    :Output.    noError, falls alles ok, sonst zugehöriger Fehler und der
  54.    :Output.    Puffer wird KEINESFALLS dealloziert.
  55.    :Semantic.    Speichert ein File komplett ab.
  56. *)
  57.  
  58. END FileIO.def
  59.